原帖 | Jason | 2026-08-24 10:44 | 👍0 | 阅读约1
Linux/Android GT911 触控屏调试速查手册,适用 Goodix GT911 电容 TP,RK 平台,主要以 Android 为例。
1、枚举全部 input 设备,确认 TP 节点
getevent -lrt
Linux 环境替换工具:evtest
2、中断排查
cat /proc/interrupts | grep Goodix
- 计数始终为0:TP没有产生中断,硬件/引脚/设备树配置问题
- 计数疯狂上涨:中断触发方式配置错误
3、I2C总线探测,确认芯片硬件在位
i2cdetect -y -r 1
GT911常见地址:0x5d;复位时INT引脚电平不同,也可能落在 0x14。
驱动尚未加载时,直接读写寄存器,判断芯片硬件是否存活
单寄存器读取
i2cget -y 1 0x5d
dump整片寄存器
i2cdump -y 1 0x5d
4、GPIO电平与方向检查
cat /sys/kernel/debug/gpio
RK平台参考:
- gpio‑97:TP中断脚 IRQ(gpio3 RK_PA1)
- gpio‑98:TP复位脚 RESET(gpio3 RK_PA2)
RESET复位完成后驱动会配置为输入,显示in属于正常现象。
检查引脚复用,SCL/SDA/INT/RESET四个关键脚,确认没有被其他外设抢占功能
cat /sys/kernel/debug/pinctrl/*/pinmux-pins
5、I2C设备与驱动匹配检查
ls -l /sys/bus/i2c/devices/1-005d/
存在 driver 软链接,代表设备树compatible匹配成功;没有该链接,优先排查compatible字符串。
查看实际生效设备树
dtc -I dtb -O dts -o out.dts 板上dtb文件
或者直接读取运行时设备树
/proc/device-tree
6、唤醒源功能排查,TP唤醒休眠系统
cat /sys/kernel/debug/wakeup_sources
查看TP是否出现在唤醒源列表,触摸时观察唤醒计数是否上涨。
7、TP中断线程调度信息
ps -T | grep Goodix
找到线程名类似 irq/xx‑Goodix‑TS ,结合 chrt 查看调度优先级, top 确认线程运行CPU核心。
8、Android 专属调试
Input服务层
dumpsys input
查看系统识别到的TP设备ID,结合idc配置文件排查设备绑定问题。
显示绑定,双屏场景查:
dumpsys SurfaceFlinger
获取display id,和idc文件内绑定的display ID做比对。
9、多点触摸直观测试(tslib工具集)
原始getevent数据可读性差,可以用tslib工具,电容屏不需要校准,测试工具:
ts_test
ts_print
排错简易流程小结
1. i2cdetect:芯片硬件在不在总线
2. /proc/interrupts:中断来不来,0=硬件问题,疯涨=触发方式错
3. gpio debug:复位、中断引脚电平方向是否正常
4. /sys/bus/i2c:驱动是否匹配上
5. /proc/bus/input/devices:input子系统是否注册成功
6. getevent/evtest:有没有上报触摸事件
7. Android:dumpsys input + idc + SurfaceFlinger displayID
8. 休眠唤醒:wakeup_sources确认TP唤醒能力
相关笔记
- 📁 返回本主题 MOC
- 从MCU转Linux BSP开发
- 嵌入式Linux调试iic
- Linux 电容多点触摸驱动开
- 老师,学习Android Camera架构时
- 今天聊一个简单的知识点。 在
- Linux BSP问题闭环流程